/*
* 
* Fichier source projet pac-man.
* 
* Cree le : jeudi 17 novembre 2011 à 21 : 31.
* Auteurs : Gregoire BARRET.
* 
* Nom de fichier : lecture.c
* Chemin du fichier : ../trunk/lecture/lecure.c
* 
* Description :
* 	Ce fihier contient les fonctions pemetant la lecture du fichier de configuration, qui permet la configuration du serveur
* 
*/


#include "lecture.h"
#define TAILLE_MAX_BUFF 256

int open_file_conf(FILE **fichier_config)
{
	*fichier_config = fopen("CONFIG","r");
	if (*fichier_config == NULL)
	{ 
		perror("Error opening file CONFIG\n");
		return -1;
	}
	else 
	{
		return 0;
	}
}


int lecture_fichier_conf(FILE **fichier_config, struct Struct_Carte *conf_serveur)
{
	/* declaration des varriables*/
	char ligne[TAILLE_MAX_BUFF];
	char portextrait[3];
	char joueurextrait[1];
	int i =0;
	int j = 0;
	int k =0;
	/*debut de l'implementation*/
	while(! feof(*fichier_config))
	{
		fgets(ligne,TAILLE_MAX_BUFF,*fichier_config);
		if( feof(*fichier_config)){}
		else
		{
			if(ligne[0] !='#' && ligne[0] != '\n')//supression des commentaires
			{
				if (ligne[0] == 'J')
				{
					//char* strstr(const char* chaine, const char* chaineARechercher); permet de chercher une chaine dans une autre, a preferrer que ma thechnique
					joueurextrait[0] = ligne[2];
					(*conf_serveur).nbjoueur = atoi(joueurextrait);
				}
				else if(ligne[0] == 'P')
				{
					for(k =0; k<10 ;k++)
					{
						portextrait[k] = ligne[k+2];
					}
					(*conf_serveur).port = atoi(portextrait);
				}
				else
				{
					for(j = 0; j <25; j++)
					{
						if(ligne[j] == 'X')
						{
							conf_serveur->carte[i][j] = '#';
						}
						else
						{
							conf_serveur->carte[i][j] = ligne[j];
						}
					}
				}
				i++;
			}
		}
	}
	return 0;
}


int close_file_conf(FILE **fichier_config)
{
	if (fclose(*fichier_config) == 0){return 0;}
	else
	{
		perror("Error close file CONFIG\n");
		return -1;
	}
}

int initialisation(struct Struct_Carte *str_carte)
{
	int i;
	int j;



	struct Struct_Fantome blinky;
	struct Struct_Fantome pinky;
	struct Struct_Fantome inky;
	struct Struct_Fantome clyde;
	struct Struct_Personnage joueur1;
	struct Struct_Personnage joueur2;



	str_carte->connect = 1;

	blinky.nom = "blinky";
	(blinky).couleur = "R";
	(blinky).symbole = 'F';
	(blinky).x = 12;
	(blinky).y = 12;
	str_carte->carte[(blinky).x][(blinky).y] = (blinky).symbole;

	(pinky).nom = "pinky";
	(pinky).couleur = "P";
	(pinky).symbole = 'G';
	(pinky).x = 12;
	(pinky).y = 13;
	str_carte->carte[(pinky).x][(pinky).y] = (pinky).symbole;

	(inky).nom = "inky";
	(inky).couleur = "R";
	(inky).symbole = 'H';
	(inky).x = 13;
	(inky).y = 12;
	str_carte->carte[(inky).x][inky.y] = inky.symbole;

	(clyde).nom = "clyde";
	(clyde).couleur = "R";
	(clyde).symbole = 'I';
	(clyde).x = 13;
	(clyde).y = 13;
	str_carte->carte[(clyde).x][(clyde).y] = (clyde).symbole;

	(joueur1).nom = 1;
	(joueur1).score = 0;
	(joueur1).symbole = 'P';
	(joueur1).vie = 3;
	(joueur1).x = 19;
	(joueur1).y = 12;
	str_carte->carte[(joueur1).x][(joueur1).y] = (joueur1).symbole;

	(joueur2).nom = 1;
	(joueur2).score = 0;
	(joueur2).symbole = 'L';
	(joueur2).vie = 3;
	(joueur2).x = 6;
	(joueur2).y = 12;
	str_carte->carte[(joueur2).x][joueur2.y] = joueur2.symbole;


	str_carte->joueur1 = joueur1;
	str_carte->joueur2 = joueur2;
	str_carte->blinky = blinky;
	str_carte->clyde = clyde;
	str_carte->inky = inky;
	str_carte->pinky = pinky;

}
